package com.zjl.springmvc.controller.RESTFul;

import org.springframework.web.bind.annotation.*;

/**
 * 挡在网页上访问资源是   先在@RestController的class文件中查找
 * 早不到   再去静态资源中查找
 * 静态资源有   按顺序查询
 *      1.META-INF/resources
 *      2.resources
 *      3.static
 *      4.public
 *      这些文件夹下都可以让静态资源直接查找到
 */
@RestController
public class HandlerMappingTest {//HandlerMapping（处理器映射）
    /**
     * 	请求在  DispatcherServlet这个类的doDispatch方法
     * 	protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
     * ● SpringBoot自动配置欢迎页的 WelcomePageHandlerMapping 。访问 /能访问到index.html；
     * ● SpringBoot自动配置了默认 的 RequestMappingHandlerMapping
     * ● 请求进来，挨个尝试所有的HandlerMapping（处理器映射）看是否有请求信息。
     *   ○ 如果有就找到这个请求对应的handler
     *   ○ 如果没有就是下一个HandlerMapping
     *
     */

    //    @RequestMapping(value = "/user",method = RequestMethod.GET)  //同下
    @GetMapping("/user/{id}")
    public String getUser(
            @PathVariable("id") Integer id//达到指定的路径变量的值
                         ){
        return "id的值"+id+"传递方式GET-张三";
    }

    //    @RequestMapping(value = "/user",method = RequestMethod.POST) //同下
    @PostMapping("/user")
    public String postUser(String userName,String email){
        return "邮箱："+userName+"密码："+email+"传递方式POST-张三";
    }

    //想要PUT和DELETE可用
    // 需要使用过滤器见com.example.springmvc.config.mappingConfig.hiddenHttpMethodFilter方法
    //    @RequestMapping(value = "/user",method = RequestMethod.PUT)//同下
    @PutMapping("/user")//同上
    public String putUser(){
        return "传递方式PUT-张三";
    }

    //    @RequestMapping(value = "/user",method = RequestMethod.DELETE)//同下
    @DeleteMapping("/user")//同上
    public String deleteUser(){
        return "传递方式DELETE-张三";
    }

}
